import fetch from "node-fetch";

export class MCStatusPlugin extends plugin {
  constructor() {
    super({
      name: '皮皮的MC状态', // 插件名称
      dsc: '获取皮皮的Minecraft服务器截图状态', // 插件描述
      event: 'message', // 监听事件
      priority: 500, // 插件优先级
      rule: [
        { reg: "^#?皮皮的mc状态$", fnc: 'sendMCStatus', permission: 'all' }, // 指令规则
      ]
    });
  }

  // 处理获取MC状态的函数
  async sendMCStatus(e) {
    try {
      // 请求API获取图片
      const response = await fetch('https://jt.napneko.me/screenshot');

      // 检查请求是否成功
      if (!response.ok) {
        throw new Error(`请求失败, 状态码: ${response.status}`);
      }

      // 获取图片的二进制数据（使用 arrayBuffer）
      const arrayBuffer = await response.arrayBuffer();
      
      // 将 arrayBuffer 转换为 Buffer
      const buffer = Buffer.from(arrayBuffer);

      // 将 Buffer 转换为 Base64 编码
      const screenshotBase64 = buffer.toString('base64');
      
      // 构建Base64数据URL
      const base64Image = `data:image/png;base64,${screenshotBase64}`;

      // 发送图片消息
      await e.reply(segment.image(base64Image), true);
    } catch (error) {
      // 捕获错误并回复错误信息
      await e.reply(`获取MC状态时出错: ${error.message}`, true);
    }
  }
}
